package com.example.entity.dto;

import io.swagger.v3.oas.models.security.SecurityScheme;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 作者:xuSen
 * 日期2025/5/1 16:05
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Interact {
    Integer tid;
    Integer uid;
    Date time;
    String type;

    public String toKey() {
        return tid + ":" + uid;
    }

    /**
     * 解析交互信息字符串并创建Interact对象
     * 此方法用于将格式化的字符串转换为Interact对象，字符串应包含两个由冒号分隔的整数，
     * 分别代表交互的两个标识符id1和id2此外，方法还接受一个类型字符串，用于记录交互类型
     *
     * @param str  一个包含两个整数的格式化字符串，形如"id1:id2"
     * @param type 交互的类型字符串
     * @return 返回一个新创建的Interact对象，该对象包含解析出的id1、id2、当前日期和交互类型
     */
    public static Interact parsInteract(String str, String type) {
        // 分割字符串以获取交互的两个标识符
        String[] keys = str.split(":");
        // 使用解析的标识符、当前日期和给定的类型创建并返回一个新的Interact对象
        return new Interact(Integer.parseInt(keys[0]), Integer.parseInt(keys[1]), new Date(), type);
    }

}
